package cn.kgc.biz.service;

import cn.kgc.biz.vo.LinkUserVo;
import cn.kgc.dto.Dto;
import cn.kgc.mapper.UserLinkUserMapper;
import cn.kgc.pojo.User;
import cn.kgc.pojo.UserLinkUser;
import cn.kgc.util.DtoUtil;
import com.github.pagehelper.StringUtil;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.Date;
import java.util.List;

@Service
public class UserServiceImpl implements UserService{
    @Resource
    private UserLinkUserMapper userLinkUserMapper;
    @Override
    public Dto queryUserLinkUser(User user, String linkUserName) {
        UserLinkUser userLinkUser=new UserLinkUser();
        userLinkUser.setUserId(new Integer(user.getId().toString()));
        if (!StringUtil.isEmpty(linkUserName)){
            userLinkUser.setLinkUserName(linkUserName);
        }
        List<UserLinkUser> userLinkUserList=userLinkUserMapper.select(userLinkUser);
        return DtoUtil.getSuccesWithData(userLinkUserList);
    }

    @Override
    public Dto addUserLinkUser(User user, LinkUserVo linkUserVo) {
        UserLinkUser userLinkUser=new UserLinkUser();
        if (!StringUtil.isEmpty(linkUserVo.getLinkUserName())){
            userLinkUser.setLinkUserName(linkUserVo.getLinkUserName());
        }
        if (!StringUtil.isEmpty(linkUserVo.getLinkPhone())){
            userLinkUser.setLinkPhone(linkUserVo.getLinkPhone());
        }
        if (!StringUtil.isEmpty(linkUserVo.getLinkIdCard())){
            userLinkUser.setLinkIdCard(linkUserVo.getLinkIdCard());
        }
        userLinkUser.setUserId(Integer.parseInt(user.getId().toString()));
        userLinkUser.setCreatedBy(user.getId());
        userLinkUser.setCreationDate(new Date());
        userLinkUser.setLinkIdCardType(linkUserVo.getLinkIdCardType());
        int n= userLinkUserMapper.insert(userLinkUser);
        if (n==1){
            return DtoUtil.getSuccessDto("新增常用联系人成功");
        }
        return DtoUtil.getFalseDto("新增常用联系人失败","300001");
    }

    @Override
    public Dto modifyUserLinkUser(User user, LinkUserVo linkUserVo) {
        UserLinkUser userLinkUser=new UserLinkUser();
        if (linkUserVo.getId()!=0 && linkUserVo.getId()!=null){
            userLinkUser.setId(linkUserVo.getId());
        }
        if (!StringUtil.isEmpty(linkUserVo.getLinkUserName())){
            userLinkUser.setLinkUserName(linkUserVo.getLinkUserName());
        }
        if (!StringUtil.isEmpty(linkUserVo.getLinkPhone())){
            userLinkUser.setLinkPhone(linkUserVo.getLinkPhone());
        }
        if (!StringUtil.isEmpty(linkUserVo.getLinkIdCard())){
            userLinkUser.setLinkIdCard(linkUserVo.getLinkIdCard());
        }
        userLinkUser.setModifiedBy(user.getId());
        userLinkUser.setModifyDate(new Date());
        userLinkUser.setLinkIdCardType(linkUserVo.getLinkIdCardType());
        int n=userLinkUserMapper.updateLinkUserById(userLinkUser);
        if (n==1){
            return DtoUtil.getSuccessDto("修改常用联系人成功");
        }
        return DtoUtil.getSuccessDto("修改常用联系人失败");
    }

    @Override
    public Dto delUserLinkUser(String[] ids) {
        int count=0;
        for (int i = 0; i <ids.length ; i++) {
            int n=userLinkUserMapper.deleteByPrimaryKey(Long.parseLong(ids[i]));
            if (n==1){
                count++;
            }
        }
        if (count==ids.length){
            return DtoUtil.getSuccessDto("删除成功");
        }
        if (count>0 && count<ids.length){
            return DtoUtil.getFalseDto("数据异常，部分联系人删除失败","300002");
        }
        return DtoUtil.getFalseDto("删除失败","300003");
    }
}
